/*
 * SGI_LINK_LAYER_UT.h
 *
 *  Created on: 17/10/2011
 *      Author: Santiago Carmona Meco
 */

#ifndef __SGI_LINK_LAYER_UT_H_
#define __SGI_LINK_LAYER_UT_H_

#include <public/ut_base.h>
#include <public/basic_types.h>


class SGI_LINK_LAYER_UT:public CUTBase
{
	friend class CUTManager;

public:
	SGI_LINK_LAYER_UT(const char *id, bool_t priority = false, bool_t setSeed = false, int32_t seed = 0);
	bool_t DoTest(void);
	virtual ~SGI_LINK_LAYER_UT();
	bool_t Check_Codes(byte_t * pBurst, byte_t code);
	bool_t Check_Ctrl(byte_t * pBurst, byte_t ctrl);
	bool_t Check_Key(byte_t * pBurst, byte_t *pKey);
	bool_t Check_Univ_Time(byte_t * pBurst, byte_t *pUnivTime);
	bool_t Check_Size_Req(byte_t * pBurst, byte_t *pSizeReq);
	bool_t Check_Size_Provide(byte_t * pBurst, byte_t *pSizeProvide);
	bool_t Check_Stats_Tx(byte_t * pBurst, byte_t *pStatsTx);
	bool_t Check_Stats_Rx(byte_t * pBurst, byte_t *pStatsRx);
	bool_t Check_Acks(byte_t * pBurst, byte_t *pAcks);
	bool_t Check_Gc(byte_t * pBurst, byte_t gc);
	bool_t Check_Ss(byte_t * pBurst, byte_t ss);
	bool_t Check_Sd(byte_t * pBurst, byte_t sd);
	bool_t Check_Nf(byte_t * pBurst, byte_t nf);
	bool_t Check_Burst_Info (byte_t * pBurst,struct sgi_link_layer_burst_info_t burstInfo);
	void Generate_Random_Burst (byte_t * pBurst);
	void Write_Log_File(const char* szString);


};




#endif /* __SGI_LINK_LAYER_UT_H_ */

